Distributing content

ABSTRACT

Contextually relevant pieces of alternative content, including advertisements, are selected for display with requested content based on documents or other second content sources that are referenced by or in the requested content.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.12/696,583, filed Jan. 29, 2010, the contents of which is incorporatedby reference.

TECHNICAL FIELD

This disclosure relates to distributing content.

BACKGROUND

In many different environments, content providers want to distributecontent to selected individuals for review. For example, advertiserswant to distribute their advertisements where the advertisements will beeffective in communicating information to receptive recipients, and attimes when the advertisements will lead to desired activity, such as apurchase of the advertiser's goods or services. In some instances, acontent provider may rely on contextual information when makingdecisions regarding content distribution selections. For example, anadvertiser may want to advertise goods and/or services relating totravel where information of general interest to travel enthusiasts isavailable. In some instances, a content provider may rely on targetinginformation, such as demographic information of recipients, whenselecting content for distribution. Additionally, content providers canrely on performance information regarding results achieved by previouscontent distribution selections.

SUMMARY

In order to effectively distribute content to locations based oncontextual relevance, the context of content at a candidate contentdistribution location must be known. In many situations, such as whenthe content at a candidate content distribution location is new, or whenthe context of the content changes, the current context of the contentat the candidate content distribution location may not be known at atime when a decision regarding selection of content for distribution tothe candidate content distribution location is made. In such situations,it may not be possible to select content for distribution to thecandidate content distribution location based on contextual relevance,or the effectiveness of content selection may be reduced. However, ifthe current context of a candidate content distribution location isknown, then contextually-relevant content can be selected fordistribution to the candidate content distribution location.

For example, in Internet advertising, many web pages include spacereserved for the display of advertisement creatives, including text,audio, and/or video advertisements, which are selected at or near a timewhen a visitor requests to view a copy of the web page. If the web pageis a search results page created by a search engine provider, a pagethat includes current news headlines, or another page that includes newor frequently-changing content, the current context of the page contentmay not be known. Particularly for very broad searches, or pages withbroad topics, which could encompass many different contexts over time,an advertisement server may not be able to select contextually-relevantadvertisements for display along with the search results, or theselected advertisements may be poorly matched to the interest of theuser to whom they are displayed and/or to the current context of thepage content. For example, the current context of an Internet searchquery for the name of a company might relate to one of the company'sproducts at a first time, and relate to another one of the company'sproducts at another time. Similarly, the current context of thecompany's home page might change over time, such as when a new productis released.

In some implementations, the current context of content at a locationwhere alternative content can be distributed, such as a web page withspace reserved for advertisements, is determined based on content whichis related to the content at the location, such as by a referenceincluded in the content at the location. For example, in an Internetsearch environment, the search results page includes an ordered list ofsearch results. Each of the search results includes a hypertext link orother navigational tool or reference to a relevant document. One or moreof the linked documents can be used to determine the current context ofthe search results page for use in selecting advertisements to displayalong with the search results on the search results page.

For example, advertisements, or other pieces of content, which werepreviously selected as contextually-relevant to the linked document arelikely to be contextually-relevant to the content of the search resultspage and are likely to be indicative of current context of the overallcontent of the search results page. In some implementations, theadvertisements, or other content, previously selected for each documentlinked to the search results included in the search results page can beidentified as candidate pieces of content for distribution to the searchresults page. For example, the advertisements most frequently selectedas contextually-relevant to the linked documents may be selected asbeing the most relevant to the current context of the search resultspage.

In another example, the content of the linked documents can be used toidentify keywords or phrases which are relevant to the current contextof the search results page. The most common keywords or phrasesidentified from the linked documents can be used to selectadvertisements, or other pieces of content, that arecontextually-relevant to the search results page. The selected contentcan then be distributed to the search results page.

In one general aspect, distributing content includes receiving, by atleast one processor, a request for alternative content based on arequest for content, identifying, by at least one processor, a currentcontext of the requested content based on second content referred to bythe requested content, selecting, by at least one processor, alternativecontent based on the identified current context of the requestedcontent, and transmitting the selected alternative content in a responseto the request for alternative content.

Implementations may include one or more of the following features. Forexample, identifying the current context of the requested contentincludes receiving a list of search results and identifying alternativecontent previously identified as contextually-relevant to the searchresults. Selecting the alternative content includes selectingalternative content from among the alternative content previouslyidentified as contextually-relevant to the search results. Identifyingalternative content previously identified as contextually-relevant tothe search results includes retrieving and aggregating alternativecontent associated with a landing location identified in the searchresults. Selecting alternative content from among the alternativecontent previously identified as contextually-relevant to the searchresults includes selecting from among the alternative content based onat least one of a relative frequency of retrieval of the alternativecontent and a relative ranking of the search result to which thealternative content is contextually-relevant. Identifying the currentcontext of the requested content includes receiving content summaryinformation that summarizes the content of a list of search results, andselecting alternative content includes identifying alternative contentthat is contextually-relevant to the content summary information andselecting alternative content from among the identified alternativecontent. Identifying alternative content that is contextually-relevantto the summary information includes generating a search query based onthe content summary information and selecting alternative content basedon the search query. Identifying the current context of the requestedcontent includes receiving a list of search results, and selectingalternative content includes identifying a search query that producedsimilar search results and selecting alternative content based on theidentified search query. Identifying the current context of therequested content includes generating a search query based the content,and selecting alternative content includes selecting alternative contentbased on the generated search query. The alternative content includes anadvertisement.

In one general aspect a system for distributing content includes areceiver that receives a request for alternative content based on arequest for content, a current context analyzer that identifies thecurrent context of the requested content based on second contentreferred to by the requested content, a processor that selectsalternative content based on the identified current context of therequested content, and a transmitter that transmits the selectedalternative content in response to the request for alternative content.

Implementations may include one or more of the following features. Forexample the current context analyzer includes a search query generatorgenerating a search query based on the requested content. The currentcontext analyzer includes a storage device storing contextually-relevantalternative content selections for pieces of content. The currentcontext analyzer includes a keyword generator that generates keywordsbased on text content.

In one general aspect, distributing content includes receiving, by atleast one processor, a request for search results, generating, by atleast one processor, a ranked list of search results that are responsiveto the request for search results, identifying, by at least oneprocessor, a current context of the search results based on contentlocated at landing locations of links associated with the searchresults, selecting, by at least one processor, advertisements fordisplay with the search results based on the identified current contextof the search results, and transmitting the search results and theselected advertisements in a response to the request for search results.The current context is identified by at least one of identifyingadvertisements that were previously determined to becontextually-relevant to the content located at one or more landinglocations and identifying keywords that are related to content locatedat one or more landing locations. Identifying keywords that are relatedto content located at one or more landing locations includes generatinga summary of the content located at one or more landing locations andselecting keywords from among terms and phrases included in the summary.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram illustrating a system for distributing content.

FIG. 2 is a diagram illustrating a process for distributing content.

FIGS. 3-6 are diagrams illustrating processes for selecting content fordistribution.

FIG. 7 is a diagram illustrating a computer system operable in thesystem of FIG. 1.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

With reference to FIG. 1, a system 100 for distributing content includesa user terminal 111 to which content is distributed, and a publisher 120that provides content 121 a-121 e, such as web pages, that include spaceto which alternative content can be distributed. A search engineprovider 140 is operable to assist users in finding desired content inresponse to user-generated search queries using a search index 145stored on one or more storage devices. The system 100 also includes acontent provider 130, such as an advertiser, that provides alternativecontent for distribution to users, and a content server 150 forselecting alternative content distribution to available spaces includedin publishers' content, or other requested content.

One or more of the components of the system 100, such as the userterminal 111, the publisher 120, the content provider 130, the searchengine provider 140, and/or the content server 150, can include one ormore computer systems, such as the computer system 700 of FIG. 7. Thecomputer system 700 includes a processor 710, memory modules 730, astorage device 720, and an input-output module 740 connected by a systembus 760. The input-output module 740 is operable with one or more inputand/or output devices 750, including a communication device for operableconnection with a network 160 and with the other components of thesystem 100. The one or more computer systems 700 can perform the variousfunctions of the components of the system 100 by executingcomputer-readable instructions, such as computer software stored on acomputer-readable storage device.

The user terminal 111 can include a personal computer, a mobile device,and/or another computing device capable of communicating with thepublisher 120, the content provider 130, the search engine provider 140,and/or the content server 150 via the network 160 and capable ofdisplaying content, including selected alternative content, to a user.In some implementations, the user terminal 111 includes a user interface113, such as an Internet browser program, that is operable to output adisplay to the user and/or to receive inputs from the user, such askeystrokes, pointer clicks, voice commands, and/or another inputs. Thedisplay of the user interface 113 includes a first area 115 for displayof content 115 a-115 c from a first source, such as search resultsprovided by the search engine provider 140 or the a web page 121 aprovided by the publisher 120. The display of the user interface 113also includes a second area 117 for display of content 117 a-117 c froma second source, such as advertisements selected by the content server150 from among available advertisements provided by one or more contentproviders 130.

The publisher 120 can include a server computer or another computingdevice that includes a storage device on which the pieces of content 121a-121 e are stored. The publisher 120 is operable to receive requestsfor content from the user terminal 111 and to transmit one or morecomputer files and/or data streams in response to each request. In someimplementations, the pieces of content 121 a-121 e include web pages,which are transmitted to the user terminal 111 in response to a requestover the network 160, which includes the Internet. The user interface113 processes the computer files and/or data streams to create anaudio/visual display of the content of a requested web page. One or moreof the computer files and/or data streams includes one or moreinstructions that, when processed by the user terminal 111, causes theuser terminal 111 to request one or more pieces of alternative contentfrom the content server 150.

In response to receiving the request for alternative content, aselection engine 153 of the content server 150 selects an appropriatenumber of pieces of content for distribution to the user terminal 111from among candidate pieces of content referenced in one or moreindices, such as indices 155 and 157. In some implementations, the index157 is a keyword-based index which is used to select pieces ofalternative content based on keywords included in the request, and theindex 155 is a content-based index which is used to select pieces ofalternative content based on the content 115 a-115 c requested from thepublisher 120, as indicated in the request for alternative content. Withrespect to selecting one or more pieces of alternative content inresponse to a request for alternative content, the content server 150can operate, in some implementations, like the ADSENSE system and/orlike the ADWORDS system, each operated by Google Inc. In otherimplementations, however, the content server 150 can select alternativecontent in other ways.

Generally, the content-based index 155 includes references betweenavailable pieces of alternative content and locations associated withpublishers' content, such as web page addresses for web pages 121 a-121e. The references are determined by the content server 150 based oncontextual relationships between the publishers' content available atthe locations and available pieces of alternative content. The contextof the publishers' content and the available pieces of alternativecontent are determined based on an analysis of the content of eachperformed by the content server 150. For example, in an advertisingenvironment, a copy of a web page 121 a is parsed to identify thecontext of the web page 121 a from text, hypertext links, and othercontent included in the web page 121 a. Additionally, other signals,such as a frequency of occurrence of a text phrase, or whether the textphrase appears as a title, can be used in determining the context of theweb page 121 a. Many other signals may also be used in determining thecontext of the web page 121 a.

The context of available advertisements is also determined, and matchingcontexts can be indicated in the content-based index 155. For example,the content provider 130 can provide, for each advertisement, selectedcontext categories with which the advertisement is related.Additionally, or alternatively, other signals of contextual relevancecan be used to determine the context of the advertisements, such ashistorical performance information regarding user interaction with theadvertisements and the contexts of the web pages on which theadvertisements appeared when an interaction occurred. In a simpleexample, the content-based index 155 includes, for each web page, suchas the web page 121 a, a ranked list of advertisements to be deliveredto a reserved advertisement area of the web page. The ranked list can beupdated, such as when the content of the web page changes and/or asadvertisements are added or removed from the index, or as the context ofthe advertisements change.

The keyword-based index 157 also generally includes references betweenthe available pieces of alternative content and the publishers' content.For example, continuing with the advertising environment, thekeyword-based index 157 includes bids on keywords provided byadvertisers for each advertisement, as well as indications of whichkeywords match each of the web pages 121 a-121 e of the publisher.Similar information is maintained for each publisher that uses thecontent server 150 to select advertisements for display on thepublisher's web pages. Thus, keywords included in a request, such askeywords included in or derived from a search query, can be used toidentify advertisements that have matching keyword bids. If the requestdoes not include keywords, then the keywords matching the web pageassociated with the request can be used to identify advertisements thathave matching keyword bids. Advertisements for distribution to the webpage are selected from among the identified advertisements that havebids for keywords matching those included in the request or associatedwith the web page.

Regardless of the specific operation processes of the content server150, an indication of the selected alternative content is transmitted tothe user terminal 111 in response to the request for alternativecontent. The response includes instructions that, when executed by theuser terminal 111, cause the user terminal 111 to request a copy of theselected alternative content from the content provider 130. In responseto receiving the request for the selected alternative content, thecontent provider 130 transmits one or more computer files or datastreams to the user terminal 111 that enable the user terminal 111 tooutput an audio and/or video display of the selected alternativecontent. In some implementations, the computer files or data can bestored on a storage device 135, which includes a repository for suchfiles or data. If the content provider 130 is an advertiser, the storagedevice 135 includes an advertisement repository. In someimplementations, the content files or data associated with the candidatepieces of alternative content can be stored on a storage device of thecontent server 150.

As discussed above, however, in some instances, the current context ofthe requested content 115 a-115 c at the time of a request foralternative content 117 a-117 c for display with the requested content115 a-115 c may not be known. For example, if the content located on theweb page 121 a has changed subsequent to the most recent review of theweb page 121 a by the content server 150, then the context of the webpage 121 a indicated in the content-based index 155 may be inaccurate.Consequently, advertisements, or other alternative content, selectedbased on the context of the web page 121 a indicated in thecontent-based index may not be contextually-relevant to the currentcontent of the web page 121 a. As a result, the selected advertisements,or other alternative content, may not be interesting or useful to theuser. Similarly, the current context of a search results web pagegenerated by the search engine 140, which includes little or no contentbesides the search results themselves, is also unlikely to be reflectedin the content-based index 155 because the search results page may nothave previously been available for analysis by the content server 150.Even for very popular search queries, where some or all of the searchresults may be stored, such as in a cache, for use in responding tosubsequent searches, and where the stored search results have beenanalyzed by the content server 150 for use in selecting advertisementsto include along with the search results, the current context of thesearch results may have changed subsequent to the last review by thecontent server 150.

In these situations, as well as in other situations where the currentcontext of a web page, or other content provided by a publisher, isdesired for use in selecting advertisements, or other alternativecontent, the current context of the web page can be identified, such asby the content server 150. For example, with reference to FIG. 2, anexample process 200 is illustrated for selecting advertisements based onthe current context of search results generated by the search engineprovider 140. In the process 200, a user generates a search request byselecting a search query, and the user terminal 111 transmits the searchrequest to the search engine provider 140 (201). The search request canbe considered as a request for content, which is analogous to any otherrequest for content sent to a publisher, such as the publisher 120, andthe search results page which is generated by the search engine provider140 can be considered as a piece of content, analogous to any other webpage. In some implementations, for example, the search engine provider140 can be, or be like, an Internet-based search engine operated byGoogle Inc.

When the search engine provider 140 receives the search request from theuser terminal 111 (203), the search engine provider 140 can format theuser-generated query for use by the search engine provider 140 with thesearch index 145 (205). For example, the search engine provider 140 maycorrect misspellings of terms included in the user-generated searchquery, add logic operators, and/or make other format adjustments. Thesearch engine provider 140 then processes the formatted search query(207) and generates a ranked list of results (209). The search resultsinclude hypertext links, or other navigational tools, that are operableto allow the user to navigate to a web page, or other document, wherecontent associated with the selected search result is available.

In some implementations, when the ranked list of results is available,the search engine provider 140 generates a request for advertisementswhich are to be displayed to the user along with the search results andtransmits the request for advertisements to the content server 150(211). When the content server 150 receives the advertisement request(213), the content server 150 selects advertisements based oninformation included in the request (215) and transmits a response tothe search engine provider 140 including copies of the selectedadvertisements, or instructions for retrieving the selectedadvertisements (217).

For example, as illustrated in FIG. 3, the content server 150 canperform the process 300 to select advertisements based on the currentcontext of the search results. According to the process 300, when thecontent server 150 receives the request for advertisements (301), thecontent server 150 retrieves advertisements which were previouslyselected for display on the landing pages (i.e., the destination pages)of the links included in the search results (303). Thus, if the searchresults include three listings, where each result includes a link to aweb page, the content server 150 identifies as candidate advertisementsall of the advertisements previously-determined as contextually relevantto the content available on the three web pages to which links areincluded in the search results. The advertisements may be identifiedbased on the references included in the content-based index 155, which,as discussed above, contains information regarding previous analysis ofthe content of each of the web pages and selected contextually-relevantadvertisements. For example, the content server 150 may retrieve theordered list of advertisements for each of the three web pages to whichlinks are included in the search results. The content server 150 thenselects a requested number of advertisements from among the identifiedcandidate advertisements for delivery to the user along with the searchresults (305). For example, the content server 150 can select the topthree most frequently occurring advertisements from among the candidateadvertisements identified in the ranked lists for the three web pages,and transmit a response to the search engine provider 140 (307) thatincludes instructions regarding the selected advertisements and therelative positions of the selected advertisements, such that the userterminal 111 can create a display of the search results that includesthe three selected advertisements in the selected relative positions,such as in a list.

In another example, as illustrated in FIG. 4, the content server 150 canperform the process 400 to select advertisements based on the currentcontext of the search results. According to the process 400, when thecontent server 150 receives the request for advertisements (301), thecontent server 150 selects keywords based on historic information aboutqueries for which the search results included one or more of the searchresults included in the request for advertisements (403). For example,the content server 150 can maintain, in the keyword-based index 157 orelsewhere, historic information regarding previous search queries andsearch results returned for the previous search queries. Based on thehistoric information, the content server 150 can identify alternativesearch queries for which results were returned that are similar to theresults returned for the current search query. For example, if thesearch query is very broad, such as a search query that includes only asingle term, such as the name of a company, the search results for thevery broad query may closely match search results for other queriesabout the company. The content server 150 can then select a requestednumber of advertisements from the available advertisements based onkeywords included in the alternative search queries (405) and transmit aresponse to the search engine provider 140 including the selectedadvertisements (407).

Alternatively, the historic information can be maintained by the searchengine provider 140, and the request for advertisements can includeinformation regarding the alternative queries. In another example, thecontent server 150 can identify as candidate advertisements theadvertisements selected for previous advertisement requests thatincluded the alternative queries. The candidate advertisements can beidentified based on historical information regarding previousadvertisement selections that is maintained by the content server 150,for example. Thus, once the current query is identified as being relatedto selected previous queries based on similarities in the search resultsof each, the selected previous queries can be used to selectadvertisements that are contextually-relevant to the current context ofthe current query, including broad queries.

With continued reference to FIG. 2, after requesting advertisements fromthe content server 150, the search engine provider 140 collects titlesand snippets of content from the linked documents of the search results(or the documents otherwise referenced by the search results) forinclusion in the display of the search results (219). Thus, the titlesand snippets can be collected by the search engine provider 140 at thesame time as the advertisements are selected by the content server 150.

In some implementations, the search engine provider 140 generates andtransmits a request for advertisements to the content server 150, wherethe request is based on the collected titles and snippets (221). Theadvertisement request based on the collected titles and snippets can betransmitted either in addition to, or instead of, the request foradvertisements based on the ordered list of search results. When thecontent server 150 receives the request for advertisements based on thetitle and snippets (223), the content server selects advertisementsbased on the current context of the titles and snippets (225) andtransmits the advertisement selections to the search engine provider 140(227).

For example, the content server 150 can select advertisements based onthe current context of the titles and snippets according to a process500 that is illustrated in FIG. 5. According to the process 500, thecontent server 150 receives the request for advertisements from thesearch engine provider 140 (501), which includes the collected titlesand snippets for at least some of the search results, such as the webpages referenced in the top three results of the ordered list of searchresults. Based on the collected titles and snippets, the content server150 generates keywords or phrases by identifying terms included in thetitles and snippets and/or by modifying the terms of the titles andsnippets to create keywords or phrases (503). The generated keywords orphrases are then used to select advertisements for distribution to theuser terminal 111 (505), and a response is transmitted to the searchengine provider 140 that includes the selected advertisements (507).

For example, advertisements that include bid information for keywords orphrases that match one or more of the generated keywords or phrases canbe identified as candidate advertisements for selection. The contentserver 150 can select a requested number of advertisements from amongthe candidate advertisements based on a bid score. The bid score can bedetermined based on a bid amount associated with the one or morematching keywords or phrases, as well as an indication of advertisementquality. Additionally, the advertisements can be selected on anindication of relevance of the advertisements to the matching keywordsor phrases in order to improve the contextual relationship between theselected advertisements and the search results.

Again referring to FIG. 2, when the search engine provider 140 receivesthe selected advertisements (229), the search engine provider 140transmits the selected advertisements to the user terminal 111 alongwith the search results, including the titles and snippets, and the linkto the related documents (231). When the user terminal receives thesearch results and selected advertisements, the user terminal 111outputs a display including the search results and the selectedadvertisements. The selected advertisements can include advertisementsselected according to one or more of the processes described above,and/or selected according to other processes, such as an advertisementselection process that selects advertisements solely based on theuser-generated search query, or an advertisement selection process thatselects advertisements solely based on the content-based index 155. Insome implementations, the selected advertisements include one or moreadvertisements selected from a group of candidate advertisements createdfrom the results of one or more of such advertisement selectionprocesses. Thus, the selection processes described herein can be used incombination with other selection processes.

While processes 200-500 have been described with reference to a searchresults web page generated by a search engine provider 140, similarprocesses can be used to select contextually-relevant alternativecontent for inclusion on web pages, or other sources of content, thatare provided by other publishers, such as publisher 120. For example,publisher 120 can be a newspaper company, which publishes topical webpages, each of which relates to a selected company or industry segment.To illustrate, the newspaper company publishes a web page relating tocompany A, among other topic pages, each relating to other companies. Onthe topic page relating to company A, various information about companyA is available, including current news items. While the newspapercompany may wish to display advertisements on the topic page relating tocompany A, it may not be able to do so effectively because the currentcontext of the topic page relating to company A may change over time.For example, as news stories about company A are released and includedon the topic page, the context of at least the news story section of thetopic page changes. For example, on a first day, company A may announcea new web browser program product. On that day, and perhaps for a numberof days following the announcement, the primary context of the topicpage relating to company A may be the new web browser product. However,when company A announces, at a later time, the release of a new cellularphone handset product, the primary context of the topic page relating tocompany A may then be the new cell phone handset product.

In this situation, the process 600, illustrated in FIG. 6, can be usedto select advertisements for display on the topic page relating tocompany A. For example, when a user navigates to the topic page relatingto company A, the newspaper company, either directly, or indirectlythrough the user terminal 111, requests advertisements for display onthe topic page relating to company A from the content server 150 (601).The request can include links to web pages where the full content ofarticles can be found for articles relating to the news stories includedon the topic page relating to company A. In response to receiving therequest, the content server can identify the current context of thetopic page relating to company A based on the links included in therequest (603). Additionally, or alternatively, the request can includeother references to content included on the topic page relating tocompany A. For example, the content server 150 can identifypreviously-selected advertisements that are contextually relevant to thelinked web pages where the full content of the articles is available.Additionally, or alternatively, the content server 150 can identifykeywords or phrases contained in full content of the articles. Theidentified advertisements and/or keywords or phrases can be used toselect advertisements (605) and a response that includes or indicatesthe selected advertisements can be transmitted to the user terminal 111or the publisher 120 (607). By selecting advertisements from among theidentified advertisements that are contextually-relevant to the linkedweb pages, and/or by using keywords or phrases included in the fullcontent of the articles, the selected advertisements are contextuallyrelated to the current context of the topic page relating to company Aregardless of when and how frequently the context of the content of thetopic page relating to company A changes.

The processes described above, and other similar processes, canadditionally be used in other situations to select advertisements orother alternative content based on the current context of contentavailable at a location, where the current context is identified basedon references to second content sources or pieces of content. Forexample, search results for searches of blog postings, status updatepostings, or other current publications, such as Tweets published byTwitter, Inc., can be supplemented with alternative content selectedbased on references to second content sources or pieces of contentincluded in the search results or included in documents referenced inthe search results, including linked documents.

While some implementations are described above, these should not beviewed as exhaustive or limiting, but rather should be viewed asexemplary, and included to provide descriptions of various features. Itwill be understood that various modifications may be made withoutdeparting from the spirit and scope of the invention. For example, thefunctions described with regard to one or more components of the system100 can be performed by one or more different components,sub-components, or combination of components of the system 100, amongcomponents. Similarly, while the components of the system 100 have beendescribed as separate, each component can be a sub-component of anothercombination of components, and may include its own subcomponents, whichhave not specifically been illustrated or described.

Accordingly, other implementations are within the scope of the followingclaims.

The invention claimed is:
 1. A computer-implemented method comprising:receiving, by one or more processors, a request for content, the requestincluding a search query and search results that are responsive to thesearch query; identifying previous search queries whose search resultsincluded one or more of the search results; identifying, by the one ormore processors, keywords that are (i) included in the previous searchqueries and (ii) different than terms in the search query; selecting, bythe one or more processors, the content based at least in part on thekeywords; and providing, by the one or more processors and in responseto the request for content, the selected content.
 2. The method of claim1, wherein the request for content includes the previous queries whosesearch results included the one or more of the search results.
 3. Themethod of claim 1, wherein selecting the content based at least in parton the keywords comprises: selecting the content further based onprevious content that was associated with the previous search queries.4. The method of claim 1, wherein the request for content includestitles and snippets from the search results that are responsive to thesearch query.
 5. The method of claim 4, wherein selecting the contentbased at least in part on the keywords comprises: selecting the contentfurther based on the titles and the snippets from the search resultsthat are responsive to the search query.
 6. The method of claim 1,comprising: receiving data associated with user interaction with webpages that displayed the content.
 7. The method of claim 6, whereinselecting the content based at least in part on the keywords comprises:selecting the content further based on the data associated with userinteraction with the web pages that displayed the content.
 8. The methodof claim 1, wherein the search query and the previous search queries areentered by a same user.
 9. A non-transitory computer-readable mediumstoring software comprising instructions executable by one or morecomputers which, upon such execution, cause the one or more computers toperform operations comprising: receiving, by one or more processors, arequest for content, the request including a search query and searchresults that are responsive to the search query; identifying previoussearch queries whose search results included one or more of the searchresults; identifying, by the one or more processors, keywords that are(i) included in the previous search queries and (ii) different thanterms in the search query; selecting, by the one or more processors, thecontent based at least in part on the keywords; and providing, by theone or more processors and in response to the request for content, theselected content.
 10. The medium of claim 9, wherein the request forcontent includes the previous queries whose search results included theone or more of the search results.
 11. The medium of claim 9, whereinselecting the content based at least in part on the keywords comprises:selecting the content further based on previous content that wasassociated with the previous search queries.
 12. The medium of claim 9,wherein the request for content includes titles and snippets from thesearch results that are responsive to the search query.
 13. The mediumof claim 12, wherein selecting the content based at least in part on thekeywords comprises: selecting the content further based on the titlesand the snippets from the search results that are responsive to thesearch query.
 14. The medium of claim 9, wherein the operations furthercomprise: receiving data associated with user interaction with web pagesthat displayed the content.
 15. The medium of claim 14, whereinselecting the content based at least in part on the keywords comprises:selecting the content further based on the data associated with userinteraction with the web pages that displayed the content.
 16. A systemcomprising: one or more computers and one or more storage devicesstoring instructions that are operable, when executed by the one or morecomputers, to cause the one or more computers to perform operationscomprising: receiving, by one or more processors, a request for content,the request including a search query and search results that areresponsive to the search query; identifying previous search querieswhose search results included one or more of the search results;identifying, by the one or more processors, keywords that are (i)included in the previous search queries and (ii) different than terms inthe search query; selecting, by the one or more processors, the contentbased at least in part on the keywords; and providing, by the one ormore processors and in response to the request for content, the selectedcontent.
 17. The system of claim 16, wherein the request for contentincludes the previous queries whose search results included the one ormore of the search results.
 18. The system of claim 16, whereinselecting the content based at least in part on the keywords comprises:selecting the content further based on previous content that wasassociated with the previous search queries.
 19. The system of claim 16,wherein the request for content includes titles and snippets from thesearch results that are responsive to the search query.
 20. The systemof claim 19, wherein selecting the content based at least in part on thekeywords comprises: selecting the content further based on the titlesand the snippets from the search results that are responsive to thesearch query.
 21. The system of claim 16, wherein the operations furthercomprise: receiving data associated with user interaction with web pagesthat displayed the content.